package com.rightsidetech.system.mapper;

import com.rightsidetech.system.dtos.dto.AgentTreeDTO;
import com.rightsidetech.system.dtos.request.UpdateImageReq;
import com.rightsidetech.system.dtos.request.agent.AgentInfoReq;
import com.rightsidetech.system.dtos.request.agent.AreaAgentListReq;
import com.rightsidetech.system.dtos.request.store.ActAreaAgentStoreReq;
import com.rightsidetech.system.dtos.response.RegionTreeResp;
import com.rightsidetech.system.dtos.response.agent.AgentInfoResp;
import com.rightsidetech.system.dtos.response.agent.AgentListResp;
import com.rightsidetech.system.dtos.response.agent.AgentSearchResp;
import com.rightsidetech.system.dtos.response.agent.OptAgentResp;
import com.rightsidetech.system.dtos.response.store.ActAgentResp;
import com.rightsidetech.system.entity.SysAgentInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysAgentInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SysAgentInfo record);

    int insertSelective(SysAgentInfo record);

    SysAgentInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysAgentInfo record);

    int updateByPrimaryKey(SysAgentInfo record);

    List<AgentInfoResp> page(AgentInfoReq request);

    SysAgentInfo selectByPhoneNo(@Param("mobileNo") String mobileNo);

    SysAgentInfo selectByName(@Param("name") String name);

    List<AgentSearchResp> search(@Param("content") String content,@Param("status")Byte status,@Param("areaId") Long areaId);

    List<OptAgentResp> selectList(Long commodityId);

    List<Long> selectAgentIdAll();

    int updateHeadImg(@Param("req")UpdateImageReq req,@Param("id")Long id);

    AgentInfoResp selectById(Long id);

    List<AgentListResp> findAgentByAreaOrAgentId(AreaAgentListReq request);

    Long findAgentNumByAreaId(@Param("areaId") Long areaId);

    List<ActAgentResp> selectActAgentList(ActAreaAgentStoreReq req);

    List<RegionTreeResp> allAgent();

    List<AgentTreeDTO> allAgentByAreaId(Long areaId);

    int countByAgentInfoId(Long agentInfoId);

    List<Long> findAgentIdsByAreaIds(List<Long> list);
}